Du raisonnement linéaire au raisonnement structuré
Qu'est-ce que l'évolution du raisonnement ?
L'évolution de Chain-of-Thought (CoT)représente un changement fondamental dans la manière dont les grands modèles linguistiques traitent des tâches complexes. Il marque la transition des modèles fournissant un "flux de conscience" continu vers la navigation dans des architectures logiques complexes à plusieurs chemins.
Pourquoi aller au-delà du CoT linéaire ?
Le modèle linéaire de base (CoT standard) :Dans le CoT standard, les modèles génèrent les étapes intermédiaires de manière séquentielle. Bien qu'extrêmement efficace pour les problèmes simples, il présente un défaut critique : il ne peut pas revenir en arrière ni explorer d'autres solutions s'il commet une erreur dès le début.
Évolutions modernes du raisonnement (le paradigme « o1 ») :Des modèles comme OpenAI o1 et DeepSeek-R1 prolongent considérablement la durée du raisonnement. Ils effectuent une « mise en alignement des chiffres » et une vérification interne avant de finaliser une sortie, prouvant que les problèmes complexes exigent une planification réfléchie plutôt que des suppositions intuitives.
Comment fonctionne le raisonnement structuré
- Programme de pensée (PoT):Découple le raisonnement du calcul. Au lieu de chercher à résoudre directement les mathématiques dans le texte, le modèle génère du code (par exemple, Python) pour résoudre des tâches logiques ou mathématiques. Par exemple, pour trouver les racines de $x^2 + 2x + 1 = 0$, il écrit un script plutôt que de deviner l’algèbre.
- Arbre de pensée (ToT):Permet au modèle de se diviser en plusieurs candidats de « pensée ». Il évalue ces branches et élimine les impasses, agissant beaucoup comme un algorithme de recherche classique (par exemple, A* ou recherche arborescente de Monte Carlo).
- Graphe de pensée (GoT):Représente le raisonnement comme un réseau. Les informations peuvent être regroupées à partir de plusieurs nœuds indépendants, permettant des dépendances non linéaires où des lignes de pensée distinctes se fusionnent en une seule conclusion.
You would instantiate three parallel processes or prompts:
node_1 = analyze("Methodology")node_2 = analyze("Results")node_3 = analyze("Limitations")The final node takes the outputs of the previous independent nodes as its input, forming a graph structure rather than a simple tree or line.
synthesis_node = aggregate([node_1, node_2, node_3])final_summary = generate_summary(synthesis_node)